Method and circuit for transmitting data

ABSTRACT

Methods and circuits for transmitting data are disclosed. An embodiment of a method includes transmitting a predetermined number of pulses during predetermined period of time. A first predetermined number of pulses transmitted during the predetermined period of time represents a first value and a second predetermined number of pulses transmitted during the predetermined period of time represents a second value.

This application claims priority from U.S. provisional patentapplication 61/552,819 of Katsura Yoshio, filed on Oct. 28, 2011, whichis incorporated by reference for all that is disclosed therein.

BACKGROUND

Serial data transmission requires sending a stream of pulses on a dataline. A receiver receives the pulses and decodes the pulses into datavalues. Clock signals and the like are needed to be transmitted with thepulses in order to synchronize the data stream for proper decoding. Ifone pulse is not decoded properly, the data value represented by thepulse will be incorrect. In addition, the subsequent data values willlikely be decoded improperly. The incorrect decoding continues until areset function is transmitted that synchronizes the pulses for properdecoding. In some embodiments, timing or clock signals are transmittedon a separate line, thus requiring several wires or conductors betweenthe transmitter and receiver.

In light-emitting diode (LED) display applications, color and intensitydata is required to be transmitted to LEDs or groups of LEDs. Forexample, if a region of a display is to be bright and white, red, green,and blue LEDs in that region need to be illuminated. As soon as thecolor or intensity in that region is required to be changed, new datareflecting the changes needs to be transmitted.

As LED displays get bigger, more LEDs are used and more data needs to betransmitted to the display. With the larger sizes, more wiring is alsorequired between a host and the LEDs, which may be referred to asclients. The additional data is subject to more errors, which will causethe display to display inaccurate data. The additional wiring is subjectto failure, which will prevent a client or clients from receiving data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing a host communicating with three clients.

FIG. 2 is a block diagram of an embodiment of the first client of FIG. 1

FIG. 3 is a timing diagram of an embodiment of a data transmission.

FIG. 4 is a timing diagram of an embodiment of initial data transmittedfrom the host of FIG. 1 to a client to establish clock timing.

FIG. 5 is a block diagram of a serial interface of FIG. 2.

FIG. 6 is a flow chart describing the operation of the serial interfaceof FIG. 5 and a method for decoding data transmitted to the serialinterface.

DETAILED DESCRIPTION

Methods and circuits for transmitting data are described herein. Themethods include transmitting a predetermined number of pulses during apredetermined period of time. The number of pulses transmitted duringthe predetermined period of time represents the value of data beingtransmitted. For example, one pulse transmitted during the predeterminedperiod of time may represent a binary zero and two pulses transmittedduring the predetermined period of time may represent a binary one.Circuits are disclosed herein that decode the transmitted pulses.Initial pulses are transmitted to establish the period of time, whichalleviates the need for a separate clock or timing signal to betransmitted with the data. Furthermore, it enables the data transmissionto be accomplished using a single wire.

An example of serial data transmission between a host 100 and clients102 is shown in FIG. 1. The host 100 communicates with three clients 102by the use of serial data transmissions. The clients 102 are referred toindividually as the first client 106, the second client 108, and thethird client 110. The host 100 may be a microprocessor or other devicethat transmits and/or receives serial data. In some embodiments, theclients 102 transmit data back to the host 100, so the host 100 may berequired to also receive serial data. The serial data is transmittedfrom the host 100 to the first client 106. If the data is meant for thefirst client 106, the first client 106 processes the data; otherwise,the data is transmitted to the second client 108 where the process isrepeated. The clients 102 may be any devices that receive and/ortransmit serial data. In the embodiments described herein, the clients102 are drivers for light-emitting diodes (LEDs). As described ingreater detail below, each of the clients 102 may drive a plurality ofLEDs.

A block diagram of the first client 106 is shown in FIG. 2. The firstclient 106 is connected to the host 100 by an input data line 112 and tothe second client 108 by an output data line 114. Both the data lines112, 114 are serial data lines. Both data lines 112, 114 are connectedto a serial interface 120 that decodes or otherwise processes the data.As described in greater detail below, the serial interface 120 mayperform a multitude of different functions.

The serial interface 120 ultimately sends instructions to at least oneLED driver. In the embodiment of FIG. 2, three individual drivers areshown, a red driver 122, a green driver 124, and a blue driver 126.Although the drivers 122, 124, 126 are shown as individual devices, theymay be a single device. The drivers are connected to LEDs that areconnected together and may form strings of LEDs. In the embodiment ofFIG. 2, the red driver 124 is connected to a string of red LEDs 130, thegreen driver 126 is connected to a string of green LEDs 132, and theblue driver 128 is connected to a string of blue LEDs 134. The driversmay cause individual LEDs in their respective strings to turn on or offper instructions from the serial interface 120 or, all the LEDs in astring may turn off and on simultaneously.

Having summarily described the data transmission, the serial data formatand the operation of the host 100 and the clients 102 will now bedescribed in greater detail. Reference is made to FIG. 3, which is atiming diagram 150 of an embodiment of the serial data format usedbetween the host 100 and the clients 102. The data is transmitted as aseries of pulses 152, wherein the number of pulses transmitted during apredetermined period of time T_(CYCLE) (herein after “period T_(C)”)determines the value of the data being transmitted during the periodT_(Cc). The timing diagram of FIG. 3 has two periods T_(C), which arereferred to individually as the first period 156 and the second period158. In the embodiments described herein, a single pulse transmittedduring a period T_(C) is representative of a binary zero and two pulsestransmitted during a period T_(C) is representative of a binary one.Therefore, a binary zero is being transmitted during the first period156 and a binary one is being transmitted during the second period 158.

In order to provide time for processing, the pulses 152 may have to bereceived in a time that is shorter than the period T_(C). In theembodiments described herein, the pulses are received in a time that ishalf of the period T_(C). This shorter period enables the clients toprocess the data as it is received.

The time period T_(C) may be set by the serial data transmission. Withadditional reference to FIG. 4, the host 100 may transmit two initialpulses 160 to set the time period T_(C). The pulses 160 are referred toindividually as the first pulse 162 and the second pulse 164. The timebetween the leading edge 166 of the first pulse 162 and the leading edge168 of the second pulse 164 establishes the time period T_(C). It isnoted that other signals, such as the trailing edges of the pulses 160may also be used to establish the time period T_(C). The client usesthis time period T_(C) as a reference to determine how many pulses arereceived in succeeding periods T_(C). Based on the number of pulses, theserial data is readily decoded as described above.

A data sequence may be transmitted from the host 100 after the timingpulses are transmitted. Each client may have a separate data sequencetransmitted to it. The data sequence may have a predetermined number oftime periods T_(C). At the end of a transmission of a predeterminednumber of time periods T_(C), the next data sequence may be transmittedto another client. For example, a first data sequence may be transmittedto the first client 106. When the data sequence is complete, a seconddata sequence may be transmitted to the second client 108. In someembodiments, an end of sequence signal is transmitted from the host 100to the clients 102 to indicate that the sequence has ended. The end ofsequence signal is decoded by the serial interface 120, which actsaccordingly. For example, the serial interface 120 may cause the data topass to the output data line 114 so that another client may process thedata. The end of sequence signal may be a plurality of time periodsT_(C) where no pulses are transmitted.

Having described the basic elements of the transmission format and thehost 100 and clients 102, a more detailed version of the serialinterface 120 will now be provided. A block diagram of a serialinterface 120 in the first client 106 using the above-describedtransmission format is shown in FIG. 5. The input data line 112 isconnected to a time measurement circuit 200, an input recognitioncircuit 204, and a synchronization circuit 206. The time measurementcircuit 200 measures the time difference between the first pulse 162,FIG. 4, and the second pulse 164 to establish the period T_(C). Theinput recognition circuit 204 determines whether data on the input dataline 112 is timing information or data. The synchronization circuit 206guarantees that pulses transmitted from each of the clients 102, FIG. 1,have minimum pulse widths. Otherwise, the pulse widths may reduce as thedata is transmitted through the clients 102 and may eventually becomeunreadable. For example, an input pulse on the data input 112 may have awidth of 30 nS, but the first output pulse on the data output 114 mayonly have a width of 27 nS. Therefore, the pulse width has decreased by3 nS and may eventually become unreadable. The synchronization circuit106 makes sure that the pulse widths on the output 114 have apredetermined minimum pulse width so that they may be read by subsequentclients.

The time measurement circuit 200 outputs data to three timinggenerators, which are referred to individually as the first timinggenerator 210, the second timing generator 212, and the third timinggenerator 214. The first timing generator 210 generates a clock signalhaving a period of T_(C). The second timing generator generates orrecognizes a signal having a period equal to the end of sequence signal.The third timing generator 214 generates a signal that may be used fortiming so that all the LEDs illuminate together. The signals generatedor recognized by the timing generators 210, 212, 214 may all bemultiples of the time period T_(C).

The first timing generator 210 is connected to the input recognitioncircuit 204 and to a shift register 220 by way of a switch SW1. Theshift register 220 receives data that is transmitted from the input dataline 112 when the switch SW1 is closed. The shift register 220 isconnected to a register 222, by way of a switch SW3, and to a commanddecoder 224. The register 222 stores the data that is received on theinput data line 112. The data may include commands, which are decoded bythe command decoder 224. The commands may include timing as to when thedata in the shift register 220 is to be transferred to the register 222.The switch SW3, which is controlled by the command decoder 224, maycontrol when data is transferred from the shift register 220 to theregister 222. The register 222 outputs data to a pulse width modulation(PWM) controller 226 that converts the data to pulse width modulationsignals. The pulse width modulation signals control the LED drivers 124,126, 128.

The second timing generator 212 is connected to an end of sequence (EOS)latch 230. The EOS latch 230 activates switches SW1 and SW2 when the endof the data sequence is reached. The switch SW1 enables the shiftregister 220 to receive data transmitted on the input data line 112. Theswitch SW2 enables the data received on the input data line 112 to betransmitted to the output data line 114.

The components of the serial interface 112 and their interaction witheach other will now be described in greater detail. Data transmittedfrom the host 100, FIG. 1, is received on the data input line 112. Thefirst data signals transmitted are the first and second pulses 162, 164,FIG. 4. The time measurement circuit 200 recognizes the first and secondpulses 162, 164 and generates the time period T_(C) based on the timedifference between the pulses 162, 164. The data generated by the timemeasurement circuit 200 is transmitted to the three timing generators210, 212, 214.

The first timing generator 210 generates a clock signal having a periodof T_(C). The second timing generator 212 generates or calculates a timecorresponding to the EOS. For example, the EOS may be a period of threetimes the period T_(C). The second timing generator 212 may monitor theinput data line 112 for a period of the EOS when no data is transmitted.This period may be indicative of the EOS. The third timing generator 214generates a signal that is as long as command data that may betransmitted with the data controlling the LEDs. For example, the commanddata may be twelve bits and is therefore twelve times the length of theperiod T_(C). This period is used to separate command instructions fromdata as described below.

The data on the data input line 112 is also transmitted to the inputrecognition circuit 204 where a determination is made as to whether thedata is timing data or data used to control the LEDs. If the data isused to control the LEDs, it is decoded and then transmitted to theshift register 220. In the embodiments described herein, a single pulsein the time period T_(C) is decoded as a binary zero and more than onepulse in the time period T_(C) is decoded as a binary one. Other dataformats may be used. For example, one pulse in the time period T_(C) maybe representative of a binary zero and more than one pulse in the timeperiod T_(C) may be representative of a binary one.

If the data received on the data input line 112 is intended for thefirst client 106, then switch SW2 is open so that the data is not outputto the second client 108. The switch SW1 is closed, so the clock signalgenerated by the first timing generator 210 clocks the data into theshift register 220. A portion of the data may contain the command. Forexample, the first twelve bits may be command data, which may betransmitted to the command decoder 224. In order to process the commanddata, the third timing generator 214 may also be connected to the shiftregister 220 to indicate when the command data starts and/or finishes.

When all of the data is transmitted, the EOS information is transmitted.The second timing generator 212 monitors the input data for the signalfor the EOS. When it is received, the second timing generator 212 opensthe switch SW1 and closes the switch SW2. Opening the switch SW1prevents data meant for the other clients 102 from being loaded into theshift register 220. Closing the switch SW2 enables the data received onthe data input line 112 to be output on the data output line 114.

The EOS may also cause the data stored in the shift register 220 to betransferred to the register 222. In the embodiment of FIG. 5, the thirdtiming generator 214 generates a signal for updating the register 222.The third timing generator 214 is beneficial when all of the deviceregister timing needs to be synchronized by separating datacommunications from command instructions. In some embodiments, the datais transferred to the register 222 irrespective of a commandinstruction. The register 222 may decode the data for specific LEDs. Forexample, the first twelve bits may determine the brightness of a red LEDand the second twelve bits may determine the brightness of blue LEDs.This data is read by the PWM controller 226, which translates the datainto PWM signals that are transmitted to the LED drivers 124, 126, 128.The LEDs are then driven in a conventional manner. Accordingly, the LEDsare driven as soon as the data is received by the client.

The operation of the circuit and method for decoding data will now bedescribed with reference to the flow chart 300 of FIG. 6. At step 302,data is received by the data input line 112. Decision block 304determines if the data is timing data as shown in FIG. 4. If the datareceived by the data input line 112 is timing data, processing proceedsto step 306 where the time measurement circuit 200 measures the distancebetween the first two pulses to determine T_(C). Based on the value ofT_(C), the remaining timing pulses are calculated/generated by thetiming generators 210, 212, 214 and as shown by step 308. Processingthen returns to step 302 to receive further data.

If the determination at decision block 304 is negative, processingproceeds to decision block 310 to determine if the data is an end ofsequence instruction. For example, the second timing generator 212 maydetermine if the data input line 112 has been at a logic low for apredetermined period of time that is indicative of the end of sequenceinstruction. If the end of sequence instruction has been received,processing proceeds to decision block 311 to determine if data should betransferred to the register 222 based on commands from the commanddecoder 224 and the third timing generator 214. If there is a command totransfer the data to the register 222 at a specific time, processingproceeds to block 313 where the data transfer is delayed so that all theclients 102 may display data simultaneously. More specifically, in someembodiments, the host 100 may transmit commands that cause all theclients 102 to simultaneously drive their respective LEDs. When an imageis displayed, the simultaneous driving of the LEDs will cause the wholeimage to be displayed at once rather than portions of the image as thedifferent clients 102 decode data corresponding to different portions ofthe image.

Following the delay of step 313, processing proceeds to step 312 wherethe data is moved from the shift register 220 to the register 222. Basedon the data in the register 222, the PWM controller 226 generates PWMsignals at step 314. The PWM signals are then output to the drivers 124,126, 128 to drive the LEDs at step 316. If decision block 311 isnegative, the data may be stored in the shift register 220 per step 318.In doing so, switches SW1 and SW 3 are open to lock the shift register.Switch SW 2 is closed to enable data to be transferred to the nextclient.

If decision block 310 is negative, processing proceeds to block 320because the data received at the data input line 112 is used to controlthe LEDs. In step 320, the data is decoded by the input recognitioncircuit 204. The data is then transmitted to the shift register 220 forstorage as shown at step 322. Processing then proceeds to step 302 wherethe next data signal is received.

The data transmission format described above transmits the timing orclock pulses on the same line as the data. Therefore, all of the clients102 may receive data by a single wire, which reduces the complexity andcost of displays or other devices in which the clients 102 are located.An additional benefit with a single wire is that the electricalconnections between the host 100 and the clients 102 is not as stringentas having several data lines that are all using the same potential.Therefore, the clients 102 may all be operating at different potentialsand the data from the host 100 will not be affected by the differentpotentials. Additionally, no pull-up or pull-down resistors are requiredfor the data transmission, so the data transmission is faster thanconventional data transmissions.

It is noted that the data transmission format described herein allowsfor errors to be transmitted without causing data received by all theclients 102 to be erroneous. With regard to a display, an error will notcause the entire image to be displayed erroneously. For example, if thedata has an error, only the data to the client in which it wastransmitted will have the error. Upon transmission of the EOS, thetiming calculation starts all over again with the next client and is notaffected by the previous errors.

Programming using the data format is much easier than other formats,such as I²C. The data transmission simply transmits data in the form ofpulses that contain timing information and data. Unlike prior datatechniques, data can be transmitted to several clients without addressdata being transmitted. The transmission format uses semaphoretechniques in that when one client has received its data, the clientenables a subsequent client to receive data. Therefore, no timing oraddressing information, other than the initial two pulses, is requiredto be transmitted to the clients.

The time period T_(C) has been described as being the time differencebetween the first pulse 162 and the second pulse 164. In someembodiments, the time period T_(C) may be proportional to the timedifference between the first pulse 162 and the second pulse 164. Forexample, the time period T_(C) may be ten times longer than the timebetween the first pulse 162 and the second pulse 164.

With additional reference to FIG. 1, similar data transmission to thosedescribed above may be made using a semaphore mechanism. When the firsttiming generator 210 closes the switch SW1, data can be loaded to theshift register 220. Based on the first timing generator 210, the switchSW1 is open or closed, which controls the data being transmitted to theshift register 220.

In a similar data transmission technique, the host 100 may send data tothe clients 102 using different data transmission formats or protocols.The data transmitted from the host 100 includes the EOS command, whichcauses the client receiving the data to pass the data to the nextclient. For example, the host 100 may start sending data to the clients102. The first client 106 receives and processes the data until the host100 transmits the EOS, at which time the first client 106 passessucceeding data to the second client 108. The second client 108processes the data until it receives the EOS command, at which time thesecond client 108 passes succeeding data to the third client 110. Thedata may be in any format, such as pulse width modulation or otherwell-known data formats.

While illustrative and presently preferred embodiments of the inventionhave been described in detail herein, it is to be understood that theinventive concepts may be otherwise variously embodied and employed andthat the appended claims are intended to be construed to include suchvariations except insofar as limited by the prior art.

What is claimed is:
 1. A method of transmitting data, the methodcomprising: transmitting a predetermined number of pulses during apredetermined period of time; wherein a predetermined number of pulsestransmitted during the predetermined period of time represents a firstbinary value; and wherein a number of pulses greater than the firstpredetermined number of pulses transmitted during the predeterminedperiod of time represents a second binary value.
 2. The method of claim1, wherein the predetermined number of pulses is one.
 3. The method ofclaim 1, wherein the two pulses transmitted during the predeterminedperiod represents the second binary value.
 4. The method of claim 1,wherein the first binary value is zero.
 5. The method of claim 1,wherein the second binary value is one.
 6. The method of claim 1,wherein the predetermined number of pulses is one and wherein the firstbinary value is zero.
 7. The method of claim 6, wherein two pulses aretransmitted during the predetermined period of time and wherein thesecond binary value is one.
 8. The method of claim 1, wherein the methodfurther comprises: transmitting a first pulse; transmitting a secondpulse; and measuring the time between the first pulse and the secondpulse; wherein the predetermined period of time is the time between thefirst pulse and the second pulse.
 9. The method of claim 1, wherein themethod further comprises: transmitting a first pulse; transmitting asecond pulse; and measuring the time between the first pulse and thesecond pulse; wherein the predetermined period of time is proportionalto the time between the first pulse and the second pulse.
 10. The methodof claim 1 and further comprising transmitting a predetermined number ofpulses during a second predetermined period that represents an end ofsequence command.
 11. The method of claim 10, wherein the predeterminednumber of pulses transmitted during the second predetermined period iszero.
 12. The method of claim 10, wherein the second predeterminedperiod is a multiple of the first predetermined period.
 13. A circuitfor decoding data, the circuit comprising: an input data line; a timemeasurement circuit connected to the input data line, the timemeasurement circuit configured to measure the time between two initialpulses to determine a cycle time; an input recognition circuit connectedto the input data line, the input recognition circuit outputting binaryvalues based on the number of pulses received in the cycle time.
 14. Thecircuit of claim 13, wherein the input recognition circuit outputs abinary zero if one pulse is received during a cycle time and wherein theinput recognition circuit outputs a binary one if more than one pulse isreceived during the cycle time.
 15. The circuit of claim 14 and furthercomprising a register, wherein the binary values generated by the inputrecognition circuit are stored in the register.
 16. The circuit of claim13 and further comprising an end of sequence circuit, wherein the end ofsequence circuit determines if the end of the data transmitted by way ofthe input data line has been reached.
 17. The circuit of claim 16 andfurther comprising an output data line connectable to the input dataline, wherein data is transmitted from the input data line to the outputdata line when the end of sequence circuit determines that the end ofthe data has been reached.
 18. The circuit of claim 13 and furthercomprising an LED driver, wherein the data received on the input dataline determines the output in which the LED driver drives an LED. 19.The circuit of claim 18 and further comprising a synchronizationcircuit, wherein the synchronization circuit sets the time at which thedrivers drive the LEDs.
 20. A method of transmitting data from a host toa plurality of clients connected in series, the method comprising:transmitting data from the host to a first client, the first clienthaving a data input and a data output, wherein data is received on thedata input; and transmitting an end of sequence command from the host,wherein the first client receives the end of sequence command and causesdata received on the input to be output on the data output; wherein dataoutput from the first client is received by a second client.